package com;

import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

/*
请根据每日 气温 列表 temperatures，请计算在每一天需要等几天才会有更高的温度。如果气温在这之后都不会升高，请在该位置用0 来代替。

示例 1:

输入: temperatures = [73,74,75,71,69,72,76,73]
输出:[1,1,4,2,1,1,0,0]
示例 2:

输入: temperatures = [30,40,50,60]
输出:[1,1,1,0]
示例 3:

输入: temperatures = [30,60,90]
输出: [1,1,0]


来源：力扣（LeetCode）
链接：https://leetcode-cn.com/problems/daily-temperatures
著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。
 */
public class Test {
    public static void main(String[] args) {
        List<int[]> testArray = new ArrayList<>();
        testArray.add(new int[]{73, 74, 75, 71, 69, 72, 76, 73});
        testArray.add(new int[]{30, 40, 50, 60});
        testArray.add(new int[]{30, 40, 50, 49});
        testArray.add(new int[]{30, 60, 90});

        List<int[]> answer = new ArrayList<>();
        answer.add(new int[]{1, 1, 4, 2, 1, 1, 0, 0});
        answer.add(new int[]{1, 1, 1, 0});
        answer.add(new int[]{1, 1, 0, 0});
        answer.add(new int[]{1, 1, 0});

        int total_case = testArray.size();
        int success_case = 0;
//        com.solution.volience.Solution solution = new com.solution.volience.Solution();
        com.solution.stack.Solution solution = new com.solution.stack.Solution();
        for ( int i = 0 ; i < total_case ; i++ ) {
            int[] result = solution.dailyTemperatures(testArray.get(i));
            if ( Arrays.equals(result, answer.get(i)) )
                success_case++;
        }

        DecimalFormat df = new DecimalFormat();
        df.setMaximumFractionDigits(2);
        df.setMinimumFractionDigits(2);
        String percentage = df.format((double) success_case / total_case * 100.00) + "%";
        System.out.println("测试案例通过率：" + percentage);

    }
}
